https://medium.com/@adamszpilewicz/what-is-breadth-first-search-bfs-and-how-to-implement-it-in-golang-eb4026389746