@Override
	public boolean remove(Edge e) {
		if (e == null) {
			return false;
		}
		VertexSet vertices = parentGraph.vertices();
		Edge oldNextEdgeWithSameFrom = getNextEdgeWithSameFrom(e);
		Edge oldNextEdgeWithSameTo = getNextEdgeWithSameTo(e);
		Edge oldPreviousEdgeWithSameFrom = getPreviousEdgeWithSameFrom(e);
		Edge oldPreviousEdgeWithSameTo = getPreviousEdgeWithSameTo(e);
		Vertex from = e.from();
		Vertex to = e.to();
		Edge firstOutgoingEdgeOfFrom = vertices.getFirstOutgoingEdge(from);
		Edge firstIncomingEdgeOfTo = vertices.getFirstIncomingEdge(to);
		Edge lastOutgoingEdgeOfFrom = vertices.getLastOutgoingEdge(from);
		Edge lastIncomingEdgeOfTo = vertices.getLastIncomingEdge(to);

		if (e.equals(firstOutgoingEdgeOfFrom)) {
			vertices.setFirstOutgoingEdge(from, oldNextEdgeWithSameFrom);
		}

		if (e.equals(lastOutgoingEdgeOfFrom)) {
			vertices.setLastOutgoingEdge(from, oldPreviousEdgeWithSameFrom);
		}

		if (e.equals(firstIncomingEdgeOfTo)) {
			vertices.setFirstIncomingEdge(to, oldNextEdgeWithSameTo);
		}

		if (e.equals(lastIncomingEdgeOfTo)) {
			vertices.setLastIncomingEdge(to, oldPreviousEdgeWithSameTo);
		}

		if (oldNextEdgeWithSameFrom != null) {
			setPreviousEdgeWithSameFrom(oldNextEdgeWithSameFrom, oldPreviousEdgeWithSameFrom);
		}

		if (oldPreviousEdgeWithSameFrom != null) {
			setNextEdgeWithSameFrom(oldPreviousEdgeWithSameFrom, oldNextEdgeWithSameFrom);
		}

		if (oldNextEdgeWithSameTo != null) {
			setPreviousEdgeWithSameTo(oldNextEdgeWithSameTo, oldPreviousEdgeWithSameTo);
		}

		if (oldPreviousEdgeWithSameTo != null) {
			setNextEdgeWithSameTo(oldPreviousEdgeWithSameTo, oldNextEdgeWithSameTo);
		}

		setPreviousEdgeWithSameFrom(e, null);
		setNextEdgeWithSameFrom(e, null);
		setPreviousEdgeWithSameTo(e, null);
		setNextEdgeWithSameTo(e, null);

		try {
			int index = edgeIndices.get(e.key());
			edges[index] = null;
			edgeIndices.remove(e.key());
			modificationNumber++;
			return true;
		}
		catch (NoValueException exc) {
			//do nothing
		}
		return false;
	}
Removes an edge from this EdgeSet. Returns true if and only if the
  edge was in the EdgeSet and was sucessfully removed.
Ghidra/Framework/Generic/src/main/java/ghidra/util/graph/EdgeSet.java