code: public static final <T> Stream<T> breadthFirst(T root, Function<? super T, ? extends Stream<T>> edges)
      {
          return BreadthFirst.stream(root, edges);
      }
docs: Returns stream for graph nodes starting with root. Function edges returns
  stream for each node containing nodes edges. Traversal is in breadth first
  order.
  @param <T>
  @param root
  @param edges
  @return