Phase 4 / bfs, array, shortest path
Phase 6 / graphs, shortest paths, parity
Phase 2 / DAG, Path Enumeration
Phase 1 / dijkstra, optimization