there are different ways to select some part of your program to run
there is no arduino specific hardware except the shields. everything else is just parts that you have to make work.
as for your rotary switch, if you put a resistor on each part of your multi pole switch, you could bring that value back to an analog pin. use a voltage divider with a fixed resistor. now, each switch point will cause a different voltage on the voltage divider circuit, the analog input can see that voltage and know what position your switch is in. this offers 1 pin, multiple switch positions.
a one button option is that with each press, it goes to the next thing.
press once and the LED turns on, press twice and it blinks slowly, press a third time, it blinks faster, a fourth time.....
at some point you would come back to the first stage of 'LED turns on'.
you can use a timer to determine state
you hold the momentary switch, the type that completes the circuit when pressed, then opens when released.
if you hold it for less than 1/4 seconds, nothing happens, this would be your debounce.
hold it for 1/4 to 1 seconds, and you do one thing, hold it for 1-2 seconds and some other thing happens,
the longer you hold it, the more things you can do.
this is usually used with a feedback to let you know what stage you would be in if you released.
I have one with 4 stages, the 4th being turn everything off
as for your rotary switch, there is a reason we do not use them often. you use one pin for each stage of the switch,
that type of switch does not offer any benefit because we can do the same thing with one pin, pins are a valuable commodity and we do not use them if we do not have to. we can do the same thing with a simple, common button switch and not have to buy a special rotary switch.