outEdges(v, w) {
    var outV = this._out[v];
    if (outV) {
      var edges = Object.values(outV);
      if (!w) {
        return edges;
      }
      return edges.filter(edge => edge.w === w);
    }
  }
Return all edges that are pointed at by node v. Optionally filters those edges down to just
those point to w. Behavior is undefined for undirected graphs - use nodeEdges instead.
Complexity: O(|E|).