It would be an invaluable addition to be able to create custom passes and then write data to them with a custom pass node in the shader editor. This would allow parts of an individual material to belong to different custom passes, and lights to belong to multiple passes.
Currently materials can only belong to one pass index, and lights have no option.
For example if I have a material called chrome, which contains a mask connected to a glossy shaders roughness, I could also connect the mask into a custom pass node called reflection_mask, but also connect the glossy shader into a shader to rgb node, and then connect that into a custom pass node called chrome_reflection_strength, and then use both in the compositor to emit a glow where the reflection is strong (good for making a high vis jacket glow at points where the light is reflecting from it).
It would also mean that you could assign lights their own custom pass (or even multiple custom passes), meaning you could render once and then tweak the strength/colour of individual lights in the compositor after rendering. I know this is achievable currently using view layers, but this means you have to render more than once (once for each view layer).
Here’s a link to a similar usage in Corona:
https://www.the-boundary.com/blog/tips-and-tricks-corona-lightmixer