'Register the given node'

def register(self, tnode):

    try:
        tnode = tnode()
    except TypeError:
        pass
    if (not isinstance(tnode, TreeType)):
        raise TypeError(('You    can    only    register    a    Nav    not    a    %r' % tnode))
    if (tnode.tree_root not in self._roots):
        self._roots[tnode.tree_root] = []
    if (tnode not in self._roots[tnode.tree_root]):
        bisect.insort(self._roots[tnode.tree_root], tnode)
