Dijkstra's algorithm

See SPF.