'Return stack resources and stacks in path from the root stack.
If this is not nested return (None, self), else return stack resources
and stacks in path from the root stack and including this stack.
Note that this is horribly inefficient, as it requires us to load every
stack in the chain back to the root in memory at the same time.
:returns: a list of (stack_resource, stack) tuples.'

def object_path_in_stack(self):

    if self.parent_resource:
        parent_stack = self.parent_resource._stack()
        if (parent_stack is not None):
            path = parent_stack.object_path_in_stack()
            path.extend([(self.parent_resource, self)])
            return path
    return [(None, self)]
