<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_plugin(plugin_name, default_plugin_module):
 """ Load a plugin plugin. Supports loading of plugins that are part of the vpcrouter, as well as external plugins: If the plugin name has a dotted notation then it assumes it's an external plugin and the dotted notation is the complete import path. If it's just a single word then it looks for the plugin in the specified default module. Return the plugin class. """

    try:
        if "." in plugin_name:
            # Assume external plugin, full path
            plugin_mod_name   = plugin_name
            plugin_class_name = plugin_name.split(".")[-1].capitalize()
        else:
            # One of the built-in plugins
            plugin_mod_name   = "%s.%s" % (default_plugin_module, plugin_name)
            plugin_class_name = plugin_name.capitalize()

        plugin_mod        = importlib.import_module(plugin_mod_name)
        plugin_class      = getattr(plugin_mod, plugin_class_name)
        return plugin_class
    except ImportError as e:
        raise PluginError("Cannot load '%s'" % plugin_mod_name)
    except AttributeError:
        raise PluginError("Cannot find plugin class '%s' in "
                          "plugin '%s'" %
                          (plugin_class_name, plugin_mod_name))
    except Exception as e:
        raise PluginError("Error while loading plugin '%s': %s" %
                          (plugin_mod_name, str(e)))