Add tests to cover basic cycle detection.
Throw an exception if traversal initiated without start points.