def add_node(self, node, xtra=None, branch=None):
if not node in self:<EOL><INDENT>node_ = DictNode(node, xtra)<EOL>self.update(node_)<EOL>self[node].branch = (branch or getattr(node, "<STR_LIT>", None))<EOL>return True<EOL><DEDENT>return False<EOL>
Adds a **node object** to the ``DictGraph``. Returns ``True`` if a 
new **node object** has been added. If the **node object** is already in
the ``DictGraph`` returns ``False``.

Arguments:

  - node(``object``) Node to be added. Any hashable Python ``object``.
  - xtra(``dict``) [default: ``None``] The newly created topological 
    ``Node.xtra`` dictionary will be updated with the contents of this 
    dictionary. 
  - branch(``object``) [default: ``None``] an identificator used to 
    sort topologically equivalent branches.