Fix #add_edge to add both vertices on the graph automagically.
Add specs for #[].
Refactor code.