async function contains(str, token) {
        // undefined inputs always return undefined
        if (typeof str === 'undefined') {
            return undefined;
        }

        var result;

        if (typeof token === 'string') {
            result = (str.indexOf(token) !== -1);
        } else {
            var matches = await evaluateMatcher(token, str);
            result = (typeof matches !== 'undefined');
        }

        return result;
    }
Tests if the str contains the token
@param {String} str - string to test
@param {String} token - substring or regex to find
@returns {Boolean} - true if str contains token