I think it's better of being primarily configuration based.

i.e. 

    $map = $this->_settings['_keyMap']; // keys are what exists, values are what to rewrite to
    if (isset($map[$key])) {
        $_key = $map[$key];
    }

Permits better control and will act more predictably.

The map can be derived from associations at run time if it's not set, for example.