Traversing traversable nodes in a uniform manner.

A traversable node would implement the Traversable interface, so that then it can be traversed by one of the traversors (e.g. DFS, BFS) which implement the TraverseStrategy interface. A Filter can be specified to evaluate the nodes as they are being traversed.