def register(self, widget, basename, **parameters):
        """ Register a widget, URL basename and any optional URL parameters.

        Parameters are passed as keyword arguments, i.e.
            >>> router.register(MyWidget, 'mywidget', my_parameter="[A-Z0-9]+")

        This would be the equivalent of manually adding the following
        to urlpatterns:
            >>> url(r"^widgets/mywidget/(P<my_parameter>[A-Z0-9]+)/?",
                                         MyWidget.as_view(), "widget_mywidget")

        """
        self.registry.append((widget, basename, parameters))