* basic: allow one or more when param list having choices * add unit tests * optimize a bit * re-add get_exception import * a number of existing modules expect to be able to get it from basic.py