Minor refactoring to add_edge, new add_edges method; implement dfs_tree