Does a double Breadth-First-Search to find the shortest cycle starting
from from
within the DepNodes in among
.
Finds the strongly-connected components of the directed DepNode graph by finding cycles in a Depth-First manner and collapsing any components whose nodes are involved in the cycle.