docs: def remove_defaults(self, *args):
          '''
          node.remove_defaults(a, b...) is identical to node.discard_defaults(a, b...) except that
          it raises a KeyError if any of the given arguments are not already defaults.
          '''
          rms = set(arg for aa in args for arg in ([aa] if isinstance(aa, six.string_types) else aa))
          for arg in rms:
              if arg not in self.defaults:
                  raise KeyError('{0}'.format(arg))
          return self.discard_defaults(*args)