well, you are missing the end of the parameters arrayNode and you can't combine `prototype('variable')` with a defined child afaik. To solve #128, something like this is needed:
````php
->arrayNode('backend')
    ->useAttributeAsKey('name')
    ->beforeNormalization()
        ->ifArray()
        ->then(function ($v) {
            // singular <> plural conversion for "parameter"
            if (isset($v['parameter'])) {
                if (isset($v['parameters'])) {
                    $v['parameters'] = array_merge($v['parameters'], $v['parameter']);
                } else {
                    $v['parameters'] = $v['parameter'];
                }
                unset($v['parameter']);
            }

            // useAttributeAsKey('key') normalization
            foreach ($v as $key => $value) {
                if (!is_array($value)) {
                    continue;
                }

                $normalized = array();
                foreach ($v[$key] as $parameter) {
                    $normalized[$parameter['key']] = $parameter['value'];
                }

                $v[$key] = $normalized;
            }
        })
    ->end()
    ->prototype('variable')->end()
->end()
````