You could create your "master method" to read inputs and the script name to be run from $evm.object, and then call the master method using various helper methods that handled the dialog input handling, etc.
These helper methods could call the master method using something like:
Your master method would receive these arguments using something like:
script_to_run = $evm.object['script']
arg1 = $evm.object['arg1']
arg2 = $evm.object['arg2']
Chapter 46 of the automation book describes argument passing between methods and instances, and case 3 in this chapter describes argument passing is this way when calling $evm.instantiate.
Hope this helps,