Added DFS search procedure.

This compiles ok, but I have not tested it until there is a bit more infrastructure in place!
Maybe would be good to create some sort of test harness for some of the differetn components...?