Use recursive DFS

Adding the path option revealed a bug in the iterative DFS that made it
really just another BFS. Also udpated README to reflect `rememberPath`
option.