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