1: Optimal Per-Edge Processing Times in the Semi-Streaming Model 2: Pattern Matching in Trees and Strings