https://medium.com/@anton.tmur/depth-first-search-breadth-first-search-dijkstras-algorithm-and-a-are-the-same-algorithm-15528f12f512