dijkstra algorithm, but find all paths, very good, genius