Shortest path

May make a few updates if we have time, but calling this good for now.
I'm a bit confused by this loop.  It looks like it only ever executes once, given that the last line in its scope sets "done" to True.