defs() is an alias for defines().
Allow to output to stream.
Start to refactor graph module into proper class hierarchy.
Support both directed and undirected graphs.
Elaborate API.
We don't need multigraph, so use set for edges to make sure they're unique.
Stable implementation of undirectional add_edge().