Fix DFS (issue #233) 

this induces a split of XFirstSearch into BreadthFirstSearch and DepthFirstSearch