Add a function `adjacency_list(self) -> Dict[Node, List[Node]]` which returns the adjacency list of the graph by returning a dictionary where the keys are `Node` and the values are a list of `Node` which represent the nodes which can be reached from this one in one step.
The output dictionary should contain all nodes in the graph and only those nodes.
