for that I think you could use the inEnvir technique without having to create a new role
Ndef(\test).play
~f = { ~ctrl.ar(1); Silent.ar };
Ndef(\test).put(0, \filter -> ~f.inEnvir( (ctrl:\a) ))
Ndef(\test).put(1, \filter -> ~f.inEnvir( (ctrl:\b) ))
Ndef(\test).controlNames