docs: def modify(self, modification, parameters):
          """
          Apply a single modification to an MFD parameters.
  
          Reflects the modification method and calls it passing ``parameters``
          as keyword arguments. See also :attr:`MODIFICATIONS`.
  
          Modifications can be applied one on top of another. The logic
          of stacking modifications is up to a specific MFD implementation.
  
          :param modification:
              String name representing the type of modification.
          :param parameters:
              Dictionary of parameters needed for modification.
          :raises ValueError:
              If ``modification`` is missing from :attr:`MODIFICATIONS`.
          """
          if modification not in self.MODIFICATIONS:
              raise ValueError('Modification %s is not supported by %s' %
                               (modification, type(self).__name__))
          meth = getattr(self, 'modify_%s' % modification)
          meth(**parameters)
          self.check_constraints()