BFS
Template
def bfs():
queue = deque()
seen = set()
queue.append(start_node)
seen.add(start_node)
while queue:
node = queue.popleft()
for neigh in neighbors(node):
if neigh not in seen:
visit(neigh)
queue.append(neigh)
seen.add(neigh)