code: def find_path_BFS(Graph,n,m):
      
      if m not in Graph:
          return None
      if n == m:
          return [m]
      path = [[n]]
      searched = []
      while True:
          j = len(path)
          #k = len(Graph[n])
          for i in range(j):
              node = path[i][-1]
              for neighbor in Graph[node]:
                  if neighbor not in searched:                    
                      path.append(path[i]+[neighbor])  
                      searched.append(neighbor)
                      if neighbor==m:
                          return path[-1]
          for i in range(j):
              path.pop(0)
      return path
docs: Breadth first search