docs: def resolve(self, key):
          """Looks up a variable like `__getitem__` or `get` but returns an
          :class:`Undefined` object with the name of the name looked up.
          """
          if key in self.vars:
              return self.vars[key]
          if key in self.parent:
              return self.parent[key]
          return self.environment.undefined(name=key)