added depth first search
added a new test