'Looks up a variable like `__getitem__` or `get` but returns an
:class:`Undefined` object with the name of the name looked up.'

def resolve(self, key):

    if (key in self.vars):
        return self.vars[key]
    if (key in self.parent):
        return self.parent[key]
    return self.environment.undefined(name=key)
