static async expand(src, { ignore = [] } = {}) {
        const paths = concat([], src);

        const results = await Promise.all(
            paths.map(async srcPath => {
                const result = await this.find(srcPath);

                if (!result.isDir && result.matches.length === 0) {
                    return [srcPath];
                }

                return result.matches;
            })
        );

        const filepaths = results.flatMap(files => files);

        return filepaths.filter(filepath => {
            return !ignore.includes(filepath);
        });
    }
Find all relevant files matching the given source path.

@param   {string|string[]} src
@param   {{ ignore?: string[] }} options
@returns {Promise<string[]>}