Converts a string <astr_path> specifier to a list-based
            *absolute* lookup, i.e. "/node1/node2/node3" is converted
            to ['/' 'node1' 'node2' 'node3'].

            The method also understands a paths that start with: '..' or
            combination of '../../..' and is also aware that the root
            node is its own parent.

            If the path list conversion is valid (i.e. exists in the
            space of existing paths, l_allPaths), return True and the
            destination path list; else return False and the current
            path list.

def b_pathInTree(self, astr_path):
            """
            Converts a string <astr_path> specifier to a list-based
            *absolute* lookup, i.e. "/node1/node2/node3" is converted
            to ['/' 'node1' 'node2' 'node3'].

            The method also understands a paths that start with: '..' or
            combination of '../../..' and is also aware that the root
            node is its own parent.

            If the path list conversion is valid (i.e. exists in the
            space of existing paths, l_allPaths), return True and the
            destination path list; else return False and the current
            path list.
            """
            if astr_path == '/':  return True, ['/']
            al_path               = astr_path.split('/')
            # Do we have a trailing '/' and not doing a '../'? If so, strip it..!
            if astr_path != '../' and al_path[-1] == '':
                al_path = al_path[0:-2]

            # Check for absolute path
            if not len(al_path[0]):
                al_path[0]          = '/'
                # print "returning %s : %s" % (self.b_pathOK(al_path), al_path)
                return self.b_pathOK(al_path), al_path
            # Here we are in relative mode...
            # First, resolve any leading '..'
            l_path        = self.l_cwd[:]
            if al_path[0] == '..':
                while al_path[0] == '..' and len(al_path):
                    l_path    = l_path[0:-1]
                    if len(al_path) >= 2: al_path   = al_path[1:]
                    else: al_path[0] = ''
                    # print "l_path  = %s" % l_path
                    # print "al_path = %s (%d)" % (al_path, len(al_path[0]))
                if len(al_path[0]):
                    # print "extending %s with %s" % (l_path, al_path)
                    l_path.extend(al_path)
            else:
                l_path      = self.l_cwd
                l_path.extend(al_path)
            # print "final path list = %s (%d)" % (l_path, len(l_path))
            if len(l_path)>=1 and l_path[0] != '/':      l_path.insert(0, '/')
            if len(l_path)>1:            l_path[0]       = ''
            if not len(l_path):          l_path          = ['/']
            str_path      = '/'.join(l_path)
            # print "final path str  = %s" % str_path
            b_valid, al_path = self.b_pathInTree(str_path)
            return b_valid, al_path