def METHOD_NAME(self, options, args):
    handlers = {
        "list": self.list_values,
        "edit": self.open_in_editor,
        "get": self.get_name,
        "set": self.set_name_value,
        "unset": self.unset_name
    }
    # Determine action
    if not args or args[0] not in handlers:
        logger.error("Need an action ({}) to perform.".format(
            ", ".join(sorted(handlers)))
        )
        return ERROR
    action = args[0]
    # Determine which configuration files are to be loaded
    #    Depends on whether the command is modifying.
    try:
        load_only = self._determine_file(
            options, need_value=(action in ["get", "set", "unset", "edit"])
        )
    except PipError as e:
        logger.error(e.args[0])
        return ERROR
    # Load a new configuration
    self.configuration = Configuration(
        isolated=options.isolated_mode, load_only=load_only
    )
    self.configuration.load()
    # Error handling happens here, not in the action-handlers.
    try:
        handlers[action](options, args[1:])
    except PipError as e:
        logger.error(e.args[0])
        return ERROR
    return SUCCESS