Add a vertex to the graph. The vertex must implement __hash__ and __eq__ as it will be stored in a set.
        :param v: vertex
        :return: graph owned vertex

def add_vertex(self, v):
        """
        Add a vertex to the graph. The vertex must implement __hash__ and __eq__ as it will be stored in a set.
        :param v: vertex
        :return: graph owned vertex
        """
        if v not in self.adjacency:
            self.adjacency[v] = Vertex(v)
        return self.adjacency[v].vertex