Federer beats Haase, meets Zverev in Montreal final