Avoid runtime tuple packing and add pipe_matching/3