I like the macro transformers in R5RS Scheme. Here's how the multi-binding if-let and when-let look:
(define-syntax if-let
(syntax-rules ()
((if-let ((var value) ...)
consequent ...)
(let ((var value) ...)
(if (and var ...)
consequent ...)))))
(define-syntax when-let
(syntax-rules ()
((when-let (binding)
body ...)
(if-let (binding)
(begin body ...)))))