Note that these are possibilities, not plans nor promises.

- graph periphery: the subgraph of graph center vertices
- finding the shortest cycle: easy for directed (*), but how about undirected?
  (*) http://www.cs.auckland.ac.nz/~ute/220ft/graphalg/node14.html
  do a BFS, when sees an already seen vertex, a cycle of length of at most
  twice the current depth of the BFS has been found; no cycles => V + 1 (Inf)
- bipartite aka 2-colourable: again, BFS:
  http://www.cs.auckland.ac.nz/~ute/220ft/graphalg/node15.html
- Eulerian circuit: Fleury's algorithm:
  http://planetmath.org/encyclopedia/FleurysAlgorithm.html
- could_be_isomorphic() - go second degree?

1. separate external and internal attributes?
2. biconn: add next_root
3. DAG SSSP
4. flow: Ford-Fulkerson/Edmonds-Karp/preflow-push?  Floyd-Warshall variant?

-- Classics --

Undirected graphs
- connectivity
  - given two vertices are they on a cycle
  - find_all_paths($u, $v)?
  - find_all_cycles()? NP-complete; equivalent to finding all Hamiltonians
- Euler tour
- bipartite matching: Hopcroft - Kraft
- 2-colorability (see above)
- planarity

Digraphs
- disallow_selfloops => 1?
- odd-length cycle
- shortest paths (bfs)
- squaring a graph: for (u,v)(v,w) add (u,w) unless already there

- graph union, graph difference?

Various specialized graph constructors?
- n-dim grid (with wraps and connectors -> wheels (webs), cones),
  circle, star, platonic solids, trees, etc.
