public function unregisterCallback($commands, $callback = null)
    {
        $commands  = (array) $commands;

        foreach ($commands as $command) {
            $command = strtolower($command);

            if (isset($this->_callbacks[$command])) {
                if ($callback) {
                    $key = array_search($callback, $this->_callbacks[$command], true);
                    if ($key !== false) {
                        unset($this->_callbacks[$command][$key]);
                        unset($this->_params[$command][$key]);
                    }
                } else {
                    unset($this->_callbacks[$command]);
                    unset($this->_params[$command]);
                }
            }
        }

        return $this->_mixer;
    }