Dijkstra's algorithm

This finds the Minimal path between two vertices.

It uses two passes through the network, a forward and a backward pass.