public function removeEdge(Edge $edge): self
	{
		$id = $edge->getId();
		if (isset($this->edges[$id])) {
			$this->edges[$id]->disconnectNodes();
			unset($this->edges[$id]);
			$this->edgeAttrIndex->removeElement($edge);
			return $this;
		} else {
			throw new MissingEdgeException(sprintf("Edge \"%s\" not found in the graph.", $id));
		}
	}