Question about Interface design for NLU classifiers in Rasa

I am trying to implement custom intent classifiers and noticed that the process(…) method takes a List[Message] as input. In my experiments (using rasa shell), it seems that I always receive only 1 message to be processed, i.e, the most recent input from the user.

Why are classifiers process(…) methods accepting a List[Message] when we get access to a single message at a time? Can someone shed light on the design choices here?

Thank you so much!