The main aim is to extend `keyval` so that packages based on it can define key styles. Seems this does the trick
```tex
\NewDocumentCommand{\define@key@style}{ m m o m }{%
\IfNoValueTF{#3}{%
\define@key{#1}{#2}{\KV@do #4,\relax,}
}{%
\define@key{#1}{#2}[{#3}]{\KV@do #4,\relax,}
}%
}
```