Using List of Filters with Or

I have a loop which adds a list of filters. I then group them using an FIlter.Or method.
Im expecting a list of documents where any of the individual filters match. E.g. Multi word search.

e.g. I have a list of filters
List<FilterDefinition<User>> Filters = new List<FilterDefinition<User>>();

I then add individual filters using this in a helper method called RegEx
Filters.Add( Builders<User>.Filter.Regex(Filter, new BsonRegularExpression(Text, "i"))
which then does

        foreach (string Word in Words)
            RegEx(ref Filters, x => x.Email, Word);
            RegEx(ref Filters, x => x.Title, Word);
            RegEx(ref Filters, x => x.FirstName, Word);
            RegEx(ref Filters, x => x.LastName, Word);

and then I return

return Builders<User>.Filter.Or(Filters);

However in practice this doesn’t appear to give me documents that match keyword1 or keyword2.

It seems to only return documents matching the first word. I can’t find the documentation I need to solve this myself. So any direct or indirect help would be appreciated.

In essence im trying to do this.
db.getCollection('users').aggregate([ { $match: { $or : [ {"first_name" : "Nester"}, {"first_name" : "Lauree"} ] } } ])