Dijkstra's algorithm

A work in progress.