If we switch SRFI 177 to using (keyword-lambda (arg ... &key arg ...) . body) format, we cannot use syntax-rules any more.  Here are the implementations I think we would need.  I know 9 is a lot, but there are really only 3, one for each type of low-level macro, but with trivial differences in the output and different library packaging.

1a)  Bigloo, STKlos, S7: written in define-macro, :foo native keywords, no packaging.

1b) RScheme, Rep, Elk, Dfsch: written in define-macro, no native keywords, no packaging

2a) Gambit, SISC, SXM: written in syntax-case, no native keywords, no packaging.

2b) Guile: written in syntax-case, #:foo native keywords, R6RS packaging.

2c)  Racket, Kawa: written in syntax-case, #:foo magic keywords, R6RS packaging

2d) Portable R6RS (includes Chez, Vicare, Larceny, Ypsilon, Mosh, IronScheme, Sagittarius): written in syntax-case, no native keywords, R6RS packaging.

3a) Chicken: written in explicit renaming, #:foo native keywords, Chicken packaging (similar to R6/R7RS)

3b) Gauche, MIT, Scheme48/scsh: written in explicit renaming, no native keywords, no packaging

3c) Picrin, Chibi: written in explicit renaming, no native keywords, R7RS packaging.