Enhanced support for keyword parameters in functions and constructors, resolves #661