Now return values (including the default one) can be callables that take as argument
the input matching value