public static function canonicalize($key, $format = self::FORMAT_1) {
        $parts = explode('-', str_replace('_', '-', mb_strtolower($key)));
        $return = $parts[0];

        if (isset($parts[1])) {
            switch ($format) {
                case self::FORMAT_1:
                    $return .= '-' . $parts[1];
                break;
                case self::FORMAT_2:
                    $return .= '-' . mb_strtoupper($parts[1]);
                break;
                case self::FORMAT_3:
                    $return .= '_' . mb_strtoupper($parts[1]);
                break;
                case self::FORMAT_4:
                    $return .= mb_strtoupper($parts[1]);
                break;
            }
        }

        return $return;
    }