def disconnect_from(target, label = nil)
      edges(:out, label).select { |edge| edge.to == target }.each do |edge|
        disconnect_via(edge)
        target.disconnect_via(edge)
      end

      nil
    end
def disconnect_from(target, label = nil)
      edges(:out, label).select { |edge| edge.to == target }.each do |edge|
        disconnect_via(edge)
        target.disconnect_via(edge)
      end

      nil
    end
Public: Disconnects this node from the +target+. Assumes that the
 receiver is the +from+ node.

 target - The node from which the receiver is to be disconnected.
 label  - An optional label; only the edge with this label will be
          removed, with other edges kept intact. No label will remove all
          outward edges between the receiver and the target.

 Raises NoSuchEdge if the two nodes are not connected.

 Returns nothing.