Merge graph

@thinxer, you can easily fill in your implementation in `graph.hpp`. good.