Mounting many macro

the below macro it awesome the only thing I cannot seem to work out is the Shift mode.
If you are mounted on any mount it dismounts you and you have to click again to mount. I would love to figure out how to get the shift to behave like the rest, meaning If mounted dismount and mount my random favorite mounts:
#showtooltip
/dismount
/cast [nomod]Algarian Stormrider
/cast [mod:alt] The Dreadwake
/cast [mod:ctrl] Grand Expedition Yak
/run if SecureCmdOptionParse"[mod:shift]"then C_MountJournal.SummonByID(0)end

I have tried many different things but none work.

#showtooltip
/dismount
/run if SecureCmdOptionParse"[mod:shift]"then C_MountJournal.SummonByID(0)end
/stopmacro [mod:shift]
/cast [mod:ctrl] Grand Expedition Yak; [mod:alt] The Dreadwake; Algarian Stormrider

sorry I already tried that and if you are on a mount and shift click the button it is dismounted and you have to keep holding shift and click the button again to mount

Ya, that’s just how the summon favorite mount command works.