docs: def _get_connected_subgraphs(vertices, vertices_neighbours):
      """Break a graph containing unconnected subgraphs into a list of connected
      subgraphs.
  
      Returns
      -------
      [set([vertex, ...]), ...]
      """
      remaining_vertices = set(vertices)
      subgraphs = []
      while remaining_vertices:
          subgraph = set(_dfs(remaining_vertices.pop(), vertices_neighbours))
          remaining_vertices.difference_update(subgraph)
          subgraphs.append(subgraph)
  
      return subgraphs