<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _register_plotter(cls, identifier, module, plotter_name, plotter_cls=None, summary='', prefer_list=False, default_slice=None, default_dims={}, show_examples=True, plugin=None):
 """ Register a plotter for making plots This class method registeres a plot function for the :class:`Project` class under the name of the given `identifier` Parameters %(Project._register_plotter.parameters)s Other Parameters prefer_list: bool Determines the `prefer_list` parameter in the `from_dataset` method. If True, the plotter is expected to work with instances of :class:`psyplot.InteractiveList` instead of :class:`psyplot.InteractiveArray`. %(ArrayList.from_dataset.parameters.default_slice)s default_dims: dict Default dimensions that shall be used for plotting (e.g. {'x': slice(None), 'y': slice(None)} for longitude-latitude plots) show_examples: bool, optional If True, examples how to access the plotter documentation are included in class documentation example_call: str, optional The arguments and keyword arguments that shall be included in the example of the generated plot method. This call will then appear as documentation plugin: str The name of the plugin """

        full_name = '%s.%s' % (module, plotter_name)
        if plotter_cls is not None:  # plotter has already been imported
            docstrings.params['%s.formatoptions' % (full_name)] = \
                plotter_cls.show_keys(
                    indent=4, func=str,
                    # include links in sphinx doc
                    include_links=None)
            doc_str = ('Possible formatoptions are\n\n'
                       '%%(%s.formatoptions)s') % full_name
        else:
            doc_str = ''

        summary = summary or (
            'Open and plot data via :class:`%s.%s` plotters' % (
                module, plotter_name))

        if plotter_cls is not None:
            _versions.update(get_versions(key=lambda s: s == plugin))

        class PlotMethod(cls._plot_method_base_cls):
            __doc__ = cls._gen_doc(summary, full_name, identifier,
                                   example_call, doc_str, show_examples)

            _default_slice = default_slice
            _default_dims = default_dims
            _plotter_cls = plotter_cls
            _prefer_list = prefer_list
            _plugin = plugin

            _summary = summary

        setattr(cls, identifier, PlotMethod(identifier, module, plotter_name))