Background
----------

I am studying ApacheMQ for a project where we need a message broker. Upon reading the [official page](http://activemq.apache.org/) I see some features that I am interested in:

* Access to messaging [Enterprise Integration Patterns](http://activemq.apache.org/enterprise-integration-patterns.html) (EIPs)
* Support for the [STOMP](https://stomp.github.io/), [AMQP](https://www.amqp.org/), [MQTT](http://mqtt.org/) and [OpenWire](http://activemq.apache.org/openwire.html) protocols

However, following the documentation, it is not clear to me if some of my objectives are possible. 

Questions
---------

I understand that in order to use ActiveMQ as a broker, I first need a messaging protocol. According to the documentation on [language support for Node.js](http://activemq.apache.org/cross-language-clients.html) ActiveMQ only supports the STOMP protocol for Node.js. 

1. Given that STOMP is a protocol, if I find a NPM library for any of the other protocols, can I use Node.js with that given protocol?
2. If such libraries exist, can you point some?
3. Are there any caveats in using Node.js and ActiveMQ with another protocol other than STOMP?

Regarding EIPs, I also need some clarification. After closer checking, I realized that [EIPs can only be used via Apache Camel](http://activemq.apache.org/enterprise-integration-patterns.html), a separate project with no support for anything other than Java. 

4. Is it possible to use any of the EIPs that ActiveMQ offers with Node.js? If so, how?