In order to fix #33, it will be useful to save the shortest path tree after every iteration of Dijkstra. We can do this using a JGraphT Subgraph.