Mattermost is the one thing listed above that I don't use. What do you see as the differences between team and project chat? I've always seen Gitter as chat with one room per repo; on the other hand, I've also never had a team chat.
Sure it can do similar things to Slack/MatterMost, but that's not the intention of what we're trying to do with it.