def root_and_path(self):
        """:returns: a tuple (parent, [members,... ]"""
        rt = []
        curAttr = self
        while isinstance(curAttr.parent, AdHocTree):
            rt.append(curAttr.name)
            curAttr = curAttr.parent
        rt.reverse()
        return (curAttr.parent, rt)
:returns: a tuple (parent, [members,... ]