Generalize graph traversal (deep-first)
Implement and use breadth-first traversal