Implement DirectedCycle.  Missing ton of test.