Runner.CallMethod works pretty well with regards to running Keyword tests. You can do a syntax like:
Runner.CallMethod('KeywordTests.TestName.Run', 'parametervalue');
However, this is a bit clunky to me. First of all, if you don't have the name up front but want to parameterize this call, you would need to do a concatenated string for the object name. Secondly, this just seems to be a bit out of the way. Code Completion already knows all the tests associated with the KeywordTests object so the information is already there.
It would be nice to do something like
KeywordTests.TestByName('MyTest').Run('parametervalue');
This just seems more intuitive and lends itself to a much cleaner implementation for creating a framework around the tests.
Note that I'd prefer the keyword test to be returned by name so that we have access to things like Test.Variables and Test.Parameters (see my other ideas on KeywordTests).