How to apply collector if some condition holds?

I have some method which can merge List and produce String:

private static String merge(List<String> strs){
    // do some and return some String
}

I also have some list and some boolean flag:

boolean flag = //..
List<String> lst = //...

I want to produce a List<String> which consists of all elements in lst if flag == false and merge(lst) if flag == true. I want to write some Collector which can do so.

lst.stream().collect(
   //Here I want Collectors.toList, or apply merge if flag == true
)

Is there a way to concisely craft such Collector?