Πλένετε τις μελιτζάνες και τους αφαιρείτε το σκληρό κοτσάνι. Τις κόβετε φέτες τις αλατίζετε και τις αφήνετε μία ώρα περίπου να στραγγίσουν. Στο διάστημα αυτό ετοιμάζετε τον κιμά. Κόβετε το κρεμμύδι και το βάζετε στην κατσαρόλα με 4 κουταλιές σούπας νερό να βράσει έως ότου απορροφήσει όλο το νερό. Κατόπιν ρίχνετε το λάδι και το σοτάρετε. Όταν ροδίσει, προσθέτετε το κιμά και τον ανακατεύετε διαρκώς, έως ότου τσιγαριστεί καλά. Τότε ρίχνετε αλάτι, πιπέρι, κανέλλα και, εάν θέλετε, το σβήνετε με το κρασί. Ρίχνετε τη ντομάτα, ένα ποτηράκι νερό και το αφήνετε να σιγοβράσει, μέχρι να πιει όλα τα υγρά του. Όταν ετοιμαστεί, τραβάτε την κατσαρόλα από τη φωτιά. Στύβετε τις μελιτζάνες, τις πλένετε, τις στραγγίζετε και τις τηγανίζετε. Όταν είναι έτοιμες και οι μελιτζάνες, παίρνετε ένα μακρόστενο ταψί και, αφού το λαδώσετε ελαφρώς, στρώνετε μια στρώση μελιτζάνες. Ετοιμάζετε ύστερα τη μπεσαμέλ, προσθέτοντας στο τέλος τα αυγά, το τυρί και τα ανακατεύετε. Τη στρώνετε επάνω στις μελιτζάνες. Πασπαλίζετε με τριμμένο τυρί και κανέλλα. Ψήνετε σε προθερμασμένο φούρνο στους 180º C για 45 λεπτά περίπου. Με τον ίδιο τρόπο φτιάχνεται το παστίτσιο, αλλά αντί για μελιτζάνες στρώνετε μακαρόνια.