docs: function dfs(g, vs, order) {
    if (!_.isArray(vs)) {
      vs = [vs];
    }
  
    var navigation = (g.isDirected() ? g.successors : g.neighbors).bind(g);
  
    var acc = [];
    var visited = {};
    _.each(vs, function(v) {
      if (!g.hasNode(v)) {
        throw new Error("Graph does not have node: " + v);
      }
  
      doDfs(g, v, order === "post", visited, navigation, acc);
    });
    return acc;
  }