Expose material function as a parameter

I want do a layered material where i can easiely switch between the different base materials. for that i need to expose a material function as a material instances parameter but i didnt found a node for it. is there one? and if not, are you consiter about improve the layered materials pipeline?

Material is a shader which is like a program, the graph you make in material editor is turn in to HLSL code then compiled and used in GPU, this includes function when you use function in material that function will be included in to material shader code, so this is not something you can be dynamically changed, atleast not in good performance. But you can make material that have few materials inside and switch between them with materials, maybe there more other option so explain you use case.