Allow step and method to accept variables

Adds the ability for the step and method functions to accept variables
inline as part of their function call.  Variables can now be specified
as pairs of strings.  This differentiates variables from options which
are now assumed to be specified by keyword value pairs.  This commit
also adds two tests to test this new behaviour of the step and method
functions.